package days9.subclasses_are_initialized_after_inheritance;

public class Demo {
 public static void main(String[] args) throws CloneNotSupportedException {
     // 问题1: 这里能否创建Student对象,来调用clone方法?
     /*
         Student类是Object类的子类,它继承了clone()方法
         但是它和Object类是非同包的关系
         不同包下: 必须在子类中,创建子类自身对象,才能够访问父类中继承过来的受保护成员
         在当前Demo类当中,叫在"兄弟姐妹"类中,创建对象,很明显不能访问,因为没有权限
      */
     Student s = new Student();
     // 'clone()' has protected access in 'java.lang.Object'
     // s.clone(); 不行

     // 问题2: 这里能够调用谁的对象的clone()方法;
     Demo d = new Demo();
     d.clone(); 

     // 当重写protected访问权限后,可以随意访问
     Teacher t = new Teacher();
     t.clone();
 }
}
class Student{
 public void test() throws CloneNotSupportedException {
     // 只能创建Student对象,来访问Student从Object类继承过来的clone方法
     // new Demo().clone(); 不行
     this.clone();
 }
}
class Teacher{
 @Override
 public Object clone() throws CloneNotSupportedException {
     return super.clone();
 }
}